PrologCheck - Property-Based Testing in Prolog
نویسندگان
چکیده
We present PrologCheck, an automatic tool for propertybased testing of programs in the logic programming language Prolog with randomised test data generation. The tool is inspired by the well known QuickCheck, originally designed for the functional programming language Haskell. It includes features that deal with specific characteristics of Prolog such as its relational nature (as opposed to Haskell) and the absence of a strong type discipline. PrologCheck expressiveness stems from describing properties as Prolog goals. It enables the definition of custom test data generators for random testing tailored for the property to be tested. Further, it allows the use of a predicate specification language that supports types, modes and constraints on the number of successful computations. We evaluate our tool on a number of examples and apply it successfully to debug a Prolog library for AVL search trees.
منابع مشابه
Advances in Property-Based Testing for \alpha Prolog
αCheck is a light-weight property-based testing tool built on top of αProlog, a logic programming language based on nominal logic. αProlog is particularly suited to the validation of the meta-theory of formal systems, for example correctness of compiler translations involving name-binding, alpha-equivalence and capture-avoiding substitution. In this paper we describe an alternative to the negat...
متن کاملAdvances in Property-Based Testing for $α$Prolog
αCheck is a light-weight property-based testing tool built on top of αProlog, a logic programming language based on nominal logic. αProlog is particularly suited to the validation of the meta-theory of formal systems, for example correctness of compiler translations involving name-binding, alpha-equivalence and capture-avoiding substitution. In this paper we describe an alternative to the negat...
متن کاملA Web-based Tutorial System for Understanding Transaction Processing
We describe an E-Learning tool, DTST, that is designed to assist undergraduate computer science students to learn about database transaction processing, in general, and CRAS property satisfaction, in particular. DTST is written primarily in PROLOG, and includes an Internet interface for ease of use and access. Testing of DTST suggests that the learning tool is of value in helping computer scien...
متن کاملGraph Invariants as Necessary Conditions for Global Constraints
This report presents a database of about graph invariants for deriving systematically necessary conditions from the graph properties based representation of global constraints. This scheme is based on invariants on the graph characteristics used in the description of a global constraint. A SICStus Prolog implementation based on arithmetic and logical constraints as well as on indexicals is avai...
متن کاملPerformance testing in LOGFLOW
LOGFLOW is a distributed Prolog implementation on a transputer network. Evaluating a distributed system causes a number of theoretical and practical problems. In this paper, a monitoring tool is described which was designed and implemented to tackle with several problems of distributed performance testing. Some improvements are also introduced which were made in LOGFLOW based on the results of ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014